package com.eastfair.imaster.service;

import com.eastfair.boot.service.SuperService;
import com.eastfair.imaster.dto.EmployeeDTO;
import com.eastfair.imaster.entity.Employee;
import com.eastfair.imaster.vo.EmployeeVo;
import com.eastfair.core.base.R;

import java.util.List;

/**
 * <p>
 * 业务接口
 * 公司员工表
 * </p>
 *
 * @author liuxiaobai
 * @date 2021-08-19
 */
public interface EmployeeService extends SuperService<Employee> {
    /**
     * 将用户拉入到公司，成为公司员工
     *
     * @param employeeDTO     员工实体
     * @return
     */
    R addUserIdOfCompany(EmployeeDTO employeeDTO);

    /**
     * 公司员工解绑
     *
     * @param companyId      公司id
     * @param employeeUserId 员工id
     * @return
     */
    R breaklUserIdOfCompany(Long companyId, Long employeeUserId);

    /**
     * 公司解绑
     *
     * @param companyId      公司id
     * @return
     */
    R breaklUserIdOfCompany(Long companyId);
    /**
     * 查询功能，内部使用
     *
     * @param employee
     * @param ids
     * @return
     */
    List<Employee> list(Employee employee, List<Long> ids);


    /**
     * 查询公司下的员工
     *
     * @param employeeDTO 公司id
     * @return
     */
    List<EmployeeVo> queryEmployeeOfCompany(EmployeeDTO employeeDTO);


    /**
     * 更换超级管理员
     * @param companyId 公司id
     * @param employeeUserId 员工id
     * @return
     */
    R changeSysAdmin(Long companyId, Long employeeUserId);

    /**
     * 修改员工用户基本信息
     * @param employeeDTO
     * @return
     */
    R updateCompanyUser(EmployeeDTO employeeDTO);

}
